﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cesave.Domain.PermisosModule.Entities;
using Cesave.Domain.Core.Specification;
using Cesave.Domain.PermisosModule.Resources;

namespace Cesave.Domain.PermisosModule.Contracts.Comercializadoras
{
    public class ComercializadoraByGuidSpecification
        : Specification<Comercializadora>
    {
        #region Private propierties

        private Guid _comercializadoraGuid = default(Guid);

        #endregion

        #region Constructor 

        public ComercializadoraByGuidSpecification(Guid comercializadoraGuid)
        {
            if (comercializadoraGuid == Guid.Empty)
                throw new ArgumentException(Messages.exception_InvalidArgument, "comercializadoraGuid");
            _comercializadoraGuid = comercializadoraGuid;
        }

        #endregion

        #region Specifiction overrides 

        public override System.Linq.Expressions.Expression<Func<Comercializadora, bool>> SatisfiedBy()
        {
            Specification<Comercializadora> specification = new DirectSpecification<Comercializadora>(a => a.ComercializadoraGuid == _comercializadoraGuid);
            return specification.SatisfiedBy();
        }

        #endregion
    }
}
